/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package stud.cp.user.valueobjects;

/**
 * Класс, описывающий запись
 * в таблице property
 * @author Morfant
 */
public class Property {

    /**
     * Индификатор свойства.
     */
    private Integer property_id;
    /**
     * Индификатор типа свойства.
     */
    private Integer property_type_id;
    /**
     * Индификатор группы свойств.
     */
    private Integer property_group_id;
    /**
     * Имя свойства.
     */
    private String name;
    /**
     * Индефикатор определения типа свойства.
     */
    private Integer property_type_defs_id;

    /**
     * Имя типа свойства.
     */
    private String propertyTypeName;

    /**
     * Имя группы свойства.
     */
    private String propertyGroupName;


    /**
     * Конструктор, который создает элемент.
     * Для добавления.
     * @param property_type_id ID типа свойства
     * @param property_group_id ID группы свойств
     * @param name Имя
     * @param property_type_defs_id ID определения типа свойств
     */
    public Property(Integer property_type_id, Integer property_group_id, String name, Integer property_type_defs_id) {
        this.property_id = -1;
        this.property_type_id = property_type_id;
        this.property_group_id = property_group_id;
        this.name = name;
        this.property_type_defs_id = property_type_defs_id;
    }

    /**
     * Конструктор, который создает элемент.
     * @param property_id ID свойства
     * @param property_type_id ID типа свойства
     * @param property_group_id ID группы свойств
     * @param name Имя
     * @param property_type_defs_id ID определения типа свойств
     */
    public Property(Integer property_id, Integer property_type_id, Integer property_group_id, String name, Integer property_type_defs_id) {
        this.property_id = property_id;
        this.property_type_id = property_type_id;
        this.property_group_id = property_group_id;
        this.name = name;
        this.property_type_defs_id = property_type_defs_id;
    }

    /**
     * Конструктор для списка.
     * @param property_id ID свойства
     * @param property_type_id ID типа свойства
     * @param property_group_id ID группы свойств
     * @param name Имя
     * @param property_type_defs_id ID определения типа свойств
     * @param propertyTypeName Имя типа
     * @param propertyGroupName Имя группы
     */
    public Property(Integer property_id, Integer property_type_id, Integer property_group_id, String name, Integer property_type_defs_id, String propertyTypeName, String propertyGroupName) {
        this.property_id = property_id;
        this.property_type_id = property_type_id;
        this.property_group_id = property_group_id;
        this.name = name;
        this.property_type_defs_id = property_type_defs_id;
        this.propertyTypeName = propertyTypeName;
        this.propertyGroupName = propertyGroupName;
    }



    /**
     * Получить имя свойства.
     * @return Имя
     */
    public String getName() {
        return name;
    }

    /**
     * Установить имя свойства.
     * @param name Имя
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * Получить  индефикатор группы свойств.
     * @return Индефикатор группы свойств.
     */
    public Integer getProperty_group_id() {
        return property_group_id;
    }

    /**
     * Уставноить индефикатор группы свойств.
     * @param property_group_id Индефикатор группы свойств.
     */
    public void setProperty_group_id(Integer property_group_id) {
        this.property_group_id = property_group_id;
    }

    /**
     * Получить индефикатор свойсва.
     * @return Индефикатор свойства.
     */
    public Integer getProperty_id() {
        return property_id;
    }

    /**
     * Установить индефикатор свойства.
     * @param property_id Индефикатор свойства.
     */
    public void setProperty_id(Integer property_id) {
        this.property_id = property_id;
    }

    /**
     * Получить индефикатор определения типа свойства.
     * @return Индефикатор типа свойсва.
     */
    public Integer getProperty_type_defs_id() {
        return property_type_defs_id;
    }

    /**
     * Установить индефикатор определения типа свойства.
     * @param property_type_defs_id ID
     */
    public void setProperty_type_defs_id(Integer property_type_defs_id) {
        this.property_type_defs_id = property_type_defs_id;
    }

    /**
     * Получить индефикатор типа свойства.
     * @return Индефикатор типа свойства.
     */
    public Integer getProperty_type_id() {
        return property_type_id;
    }

    /**
     * Установить ID типа свойства
     * @param property_type_id ID
     */
    public void setProperty_type_id(Integer property_type_id) {
        this.property_type_id = property_type_id;
    }

    /**
     * Получить имя группы.
     * @return Имя группы.
     */
    public String getPropertyGroupName() {
        return propertyGroupName;
    }

    /**
     * Получить имя типа.
     * @return Имя типа.
     */
    public String getPropertyTypeName() {
        return propertyTypeName;
    }


}
